package com.zhoug.widget.customview.pull;

/**
 * 定义下拉头部接口
 */
public interface IRefreshHeader {
    /**
     * 状态
     */

     enum  State {
        //下拉刷新,释放开始刷新,正在刷新,刷新完成
        RESET, PULL, LOADING, COMPLETE
    }

    /**
     * 松手，头部隐藏后会回调这个方法
     */
    void reset();

    /**
     * 下拉出头部的一瞬间调用
     */
    void pull();

    /**
     * 下拉到最小刷新距离调用
     */
    void pullMin();
    /**
     * 正在刷新的时候调用
     */
    void refreshing();

    /**
     * 头部滚动的时候持续调用
     * @param currentPos target当前偏移高度
     * @param lastPos   target上一次的偏移高度
     * @param refreshPos 可以松手刷新的高度
     * @param isTouch   手指是否按下状态（通过scroll自动滚动时需要判断）
     * @param state     当前状态
     */
    void onPositionChange(float currentPos, float lastPos, float refreshPos, boolean isTouch, State state);

    /**
     * 刷新成功的时候调用
     */
    void complete();


}
